遇到这样一个问题,我在一个windows server上部署了tomcat8(使用默认的8080端口),发布一个webapp1,但是由于业务需要,客户还要求域名后不接端口号(即使用80端口)部署另一个webapp2,那问题就是如何在一台server上部署多个tomcat呢?查了很多网上的资料,归纳出来有2种办法,本文先介绍第一种。
首先来了解一下tomcat在windows上的环境变量配置,具体细节见http://tomcat.apache.org/tomc...,其中提到:
- The description below uses the variable name $CATALINA_BASE to refer
the base directory against which most relative paths are resolved. If
you have not configured Tomcat for multiple instances by setting a
CATALINA_BASE directory, then $CATALINA_BASE will be set to the value
of $CATALINA_HOME, the directory into which you have installed
Tomcat.
描述了$CATALINA_BASE和$CATALINA_HOME的区别,前者是tomcat的工作目录(如conf、logs、temp、webapps、work和shared文件),后者是安装目录(如bin),上文提到,如何不需要配置多实例,那么$CATALINA_BASE和$CATALINA_HOME设置成一样的。虽然我们要求也是多实例,但是方便起见,先用最容易的方法。当我们只部署一个tomcat时,需要设置如下的环境变量:
- CATALINA_BASE 为 C:\apache-tomcat-7
- CATALINA_HOME 为 C:\apache-tomcat-7
如何要部署第二个tomcat,那么可以添加环境变量(名字可以随意定,不需要一模一样)如:
- CATALINA_BASE_2 为 C:\apache-tomcat-8
- CATALINA_HOME_2 为 C:\apache-tomcat-8
然后需要修改第二个tomcat的bin目录下的2个文件,编辑startup.bat,把里面所有的CATALINA_HOME都改为CATALINA_HOME_2;编辑catalina.bat,把里面所有的CATALINA_HOME都改为CATALINA_HOME_2,所有的CATALINA_BASE都改为CATALINA_BASE_2;直接用查找+全部替换就可以了。然后修改第二个tomcat的conf目录下的server.xml,做如下修改:
- <Server port="8005" shutdown="SHUTDOWN"> 的8005改为8006(或其他未使用的端口)
- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 的8080改为80(根据实际需要,我这边要求是80端口访问)
- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 的8009改为8010(或其他未使用的端口),前2个必须要改,这个就不清楚了,可选项,不过反正都要改了都全改了吧。
最后分别开启两个tomcat的bin下的startup.bat就可以了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。